package flm.fiado.dao.oracle;

import java.util.Date;
import java.util.List;

import flm.fiado.bean.Conta;
import flm.fiado.bean.Pessoa;
import flm.fiado.exception.DaoException;

public class ContaDAOTest {

	/**
	 * @param args
	 */
	public static void main(String[] args) {

		PessoaDAO pessoaDAO = new PessoaDAO();
		Pessoa pessoa = new Pessoa();
		pessoa.setPrenome("Didi");
		pessoa.setSobrenome("Moco");
		pessoa.setDataNascimento(new Date());
		
		ContaDAO contaDAO = new ContaDAO();
		
		Conta conta = new Conta();
		Conta conta2 = new Conta();
		
		try {
			//Cria pessoa
			pessoaDAO.criar(pessoa);
			conta.setIdPessoa(pessoa.getId());
			conta.setTotal(10.50);
			conta.setStatus('D');
			
			contaDAO.criar(conta);
			
			System.out.println("Conta criada:" + conta);
			
			conta2 = contaDAO.buscarPorId(conta);
			
			if (conta2 == null) {
				System.out.println("Conta nao encontrado");
			} else {
				System.out.println("Conta nao encontrado : " + conta2);
			}
			
			conta2.setTotal(20.35);
			contaDAO.salvar(conta2);
			
			conta2 = contaDAO.buscarPorId(conta);
			System.out.println("Conta original : " + conta);
			System.out.println("Conta alterado : " + conta2);
			
			System.out.println("Lista de Contas");
			List<Conta> todos = contaDAO.buscarTodos();
			for (Conta c : todos) {
				System.out.println(c);
			}
			
			contaDAO.apagar(conta);
			
			conta2 = contaDAO.buscarPorId(conta);
			
			if (conta2 == null) {
				System.out.println("Conta apagado com sucesso");
			} else {
				System.out.println("ERRO - Conta nao apagado: " + conta2);
			}
			
			//Descria pessoa
			pessoaDAO.apagar(pessoa);
		} catch (DaoException e) {
			e.printStackTrace();
		}		
	}

}
